Skip to content

SPI 3 Refactoring#2382

Draft
chrisdutz wants to merge 106 commits into
developfrom
refactor/spi3
Draft

SPI 3 Refactoring#2382
chrisdutz wants to merge 106 commits into
developfrom
refactor/spi3

Conversation

@chrisdutz
Copy link
Copy Markdown
Contributor

In this refactoring, we are replacing the existing Netty-based core into a set of lightweight sub-modules without requiring Netty at all and with as little third party dependencies as possible.

This will allow using our code-generation framework independently from building PLC4J drivers and allow porting PLC4X to other languages as we no longer rely on external libraries for which counterparts need to be integrated for new languages.

@chrisdutz chrisdutz marked this pull request as draft December 8, 2025 08:47
default:
return boxSideBySide(boxes.get(0), mergeHorizontal(new ArrayList<>(boxes).subList(1, boxes.size())));
}
return switch (boxes.size()) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

really like the new syntax... :)

dependabot Bot and others added 21 commits January 12, 2026 12:22
…2381)

Bumps [org.sonarsource.scanner.maven:sonar-maven-plugin](https://github.com/SonarSource/sonar-scanner-maven) from 5.4.0.6343 to 5.5.0.6356.
- [Release notes](https://github.com/SonarSource/sonar-scanner-maven/releases)
- [Commits](SonarSource/sonar-scanner-maven@5.4.0.6343...5.5.0.6356)

---
updated-dependencies:
- dependency-name: org.sonarsource.scanner.maven:sonar-maven-plugin
  dependency-version: 5.5.0.6356
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….0 (#2380)

Bumps [org.apache.commons:commons-text](https://github.com/apache/commons-text) from 1.14.0 to 1.15.0.
- [Changelog](https://github.com/apache/commons-text/blob/master/RELEASE-NOTES.txt)
- [Commits](apache/commons-text@rel/commons-text-1.14.0...rel/commons-text-1.15.0)

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format) from 1.32.0 to 1.33.0.
- [Release notes](https://github.com/google/google-java-format/releases)
- [Commits](google/google-java-format@v1.32.0...v1.33.0)

---
updated-dependencies:
- dependency-name: com.google.googlejavaformat:google-java-format
  dependency-version: 1.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2386)

Bumps [golang.org/x/net](https://github.com/golang/net) from 0.47.0 to 0.48.0.
- [Commits](golang/net@v0.47.0...v0.48.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#2385)

Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.39.0 to 0.40.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.igormaznitsa:gosdk-wrapper-maven-plugin](https://github.com/raydac/gosdk-wrapper-maven-plugin) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/raydac/gosdk-wrapper-maven-plugin/releases)
- [Changelog](https://github.com/raydac/gosdk-wrapper-maven-plugin/blob/main/CHANGELOG.md)
- [Commits](raydac/gosdk-wrapper-maven-plugin@1.1.1...1.1.2)

---
updated-dependencies:
- dependency-name: com.igormaznitsa:gosdk-wrapper-maven-plugin
  dependency-version: 1.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mockito.version` from 5.20.0 to 5.21.0.

Updates `org.mockito:mockito-core` from 5.20.0 to 5.21.0
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.20.0...v5.21.0)

Updates `org.mockito:mockito-junit-jupiter` from 5.20.0 to 5.21.0
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.20.0...v5.21.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-version: 5.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.mockito:mockito-junit-jupiter
  dependency-version: 5.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps com.gradle:develocity-maven-extension from 2.2.1 to 2.3.

---
updated-dependencies:
- dependency-name: com.gradle:develocity-maven-extension
  dependency-version: '2.3'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](apache/maven-release@maven-release-3.3.0...maven-release-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-release-plugin
  dependency-version: 3.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [io.vavr:vavr](https://github.com/vavr-io/vavr) from 0.10.7 to 0.11.0.
- [Release notes](https://github.com/vavr-io/vavr/releases)
- [Commits](vavr-io/vavr@v0.10.7...v0.11.0)

---
updated-dependencies:
- dependency-name: io.vavr:vavr
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `logback.version` from 1.5.21 to 1.5.22.

Updates `ch.qos.logback:logback-classic` from 1.5.21 to 1.5.22
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.21...v_1.5.22)

Updates `ch.qos.logback:logback-core` from 1.5.21 to 1.5.22
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.21...v_1.5.22)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: ch.qos.logback:logback-core
  dependency-version: 1.5.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](testcontainers/testcontainers-java@2.0.2...2.0.3)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-version: 2.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.testcontainers:junit-jupiter](https://github.com/testcontainers/testcontainers-java) from 1.21.3 to 1.21.4.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](testcontainers/testcontainers-java@1.21.3...1.21.4)

---
updated-dependencies:
- dependency-name: org.testcontainers:junit-jupiter
  dependency-version: 1.21.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps org.apache.karaf.tooling:karaf-maven-plugin from 4.4.8 to 4.4.9.

---
updated-dependencies:
- dependency-name: org.apache.karaf.tooling:karaf-maven-plugin
  dependency-version: 4.4.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.2.21 to 2.3.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v2.2.21...v2.3.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…12 (#2401)

Bumps org.apache.maven:maven-artifact from 3.9.11 to 3.9.12.

---
updated-dependencies:
- dependency-name: org.apache.maven:maven-artifact
  dependency-version: 3.9.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chrisdutz and others added 19 commits April 16, 2026 10:58
…al default port for TLS secured Modbus TCP (802)
…errors, after using my extended manual-testsuite, which I'll fix next, old manual-testsuite is green now)
# Conflicts:
#	plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
#	plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/ExtensionObjectDefinition.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesDataType.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesMethod.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesObject.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableAdd.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableAlias.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableAliases.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableAnalog.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableBase.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableDelete.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableFind.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableI.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableIetf.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableLog.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableOpc.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableServer.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableTag.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableTopics.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServicesVariableType.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaStatusCode.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/Variant.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantBoolean.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantByte.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantByteString.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantDataValue.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantDateTime.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantDiagnosticInfo.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantDouble.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantExpandedNodeId.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantExtensionObject.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantFloat.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantGuid.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantInt16.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantInt32.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantInt64.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantLocalizedText.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantNodeId.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantNull.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantQualifiedName.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantSByte.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantStatusCode.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantString.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantUInt16.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantUInt32.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantUInt64.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantVariant.java
#	plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/VariantXmlElement.java
#	plc4j/spi/src/main/java/org/apache/plc4x/java/spi/codegen/WithOption.java
#	plc4j/spi/values/src/main/java/org/apache/plc4x/java/spi/values/DefaultPlcValueHandler.java
#	plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/manual/ManualTest.java
#	protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec
…s7-light)

refactor: Updated the Browse api slightly to also support returing which type of subscription a tag supports: EVENT, CYCLIC, ON_VALUE_CHANGE.

feat: Adjusted plc4c, plc4py and plc4net to compile with my mspec updates. Work on plc4go is still a work in progress.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants